#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName  :2.0.6 多任务udp聊天器.py
# @Time      :2020/7/13 21:04
# @Author    :亮亮
# @说明       :构建多任务udp聊天器
# @总结       :
import socket
import threading


def recv(udp_socket):
    """
    接受收数据并显示
    :param udp_socket:
    :return:
    """
    while True:
        recv_data = udp_socket.recvfrom(1024)
        print("接收到的数据为：{}".format(recv_data[0].decode("utf-8")))


def send(udp_socket, dest_ip, dest_port):
    """
    发送数据
    :param udp_socket:
    :return:
    """
    while True:
        send_data = input("输入要发送的内容：\n")
        udp_socket.sendto(send_data.encode("utf-8"), (dest_ip, dest_port))


def main():
    # 1.创建套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    # 2.绑定端口和ip
    udp_socket.bind(("", 9090))

    # 3.获取对方的ip和端口
    dest_ip = input("输入对方的IP：")
    dest_port = int(input("请输入对方的端口："))

    # 4.创建两个线程来执行收发功能
    t1 = threading.Thread(target=recv, args=(udp_socket,))
    t2 = threading.Thread(target=send, args=(udp_socket, dest_ip, dest_port))

    # 5.启动线程
    t1.start()
    t2.start()


if __name__ == '__main__':
    main()
